<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta http-equiv="Content-Language" content="zh-CN"><link href="stylesheet.css" media="all" rel="stylesheet" type="text/css">
<title>工具集</title>
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?d286c55b63a3c54a1e43d10d4c203e75"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script>
</head><body class="SECT1">
<div>
<table summary="Header navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><th colspan="5" align="center" valign="bottom">PostgreSQL 8.2.3 中文文档</th></tr>
<tr><td width="10%" align="left" valign="top"><a href="docguide-docbook.html" accesskey="P">后退</a></td><td width="10%" align="left" valign="top"><a href="docguide.html">快退</a></td><td width="60%" align="center" valign="bottom">附录G. Documentation</td><td width="10%" align="right" valign="top"><a href="docguide.html">快进</a></td><td width="10%" align="right" valign="top"><a href="docguide-build.html" accesskey="N">前进</a></td></tr>
</table>
<hr align="LEFT" width="100%"></div>
<div class="SECT1"><h1 class="SECT1"><a name="DOCGUIDE-TOOLSETS">G.2. 工具集</a></h1>
<p>下面的工具用于处理此文档。有些可能是可选的，在文中标注了。</p>
<div class="VARIABLELIST">
<dl>
<dt><a href="http://www.oasis-open.org/docbook/sgml/" target="_top">DocBook DTD</a></dt>
<dd><p>这是 DocBook 本身的定义。目前使用版本 4.2 ；你不能使用更新或者早些的版本。请注意，别用 XML 版本的 DocBook 。</p></dd>
<dt><a href="http://www.oasis-open.org/cover/ISOEnts.zip" target="_top">ISO 8879 character entities</a></dt>
<dd><p>这是 DocBook 需要的，但是独立发布，因为它们是由 ISO 维护的。</p></dd>
<dt><a href="http://openjade.sourceforge.net" target="_top">OpenJade</a></dt>
<dd><p>这是处理 SGML 的基本包。它包含一个 SGML 分析器，一个 DSSSL 处理器(也就是一个用 DSSSL 风格表把 SGML 转换成其它格式的程序)，还有一系列相关工具。现在 Jade 由 OpenJade 组维护，而不再是 James Clark 了。</p></dd>
<dt><a href="http://docbook.sourceforge.net/projects/dsssl/index.html" target="_top">DocBook DSSSL Stylesheets</a></dt>
<dd><p>这些东西包含把 DocBook 源代码转换成其它格式(比如 HTML)的处理指令。</p></dd>
<dt><a href="http://docbook2x.sourceforge.net" target="_top">DocBook2X tools</a></dt>
<dd><p>这个可选的包是用于创建手册页的。它自己有一系列包要求先安装。请查看网站。</p></dd>
<dt><a href="http://jadetex.sourceforge.net" target="_top">JadeTeX</a></dt>
<dd><p>如果你需要，你还可以安装 JadeTeX 把 TeX 用做 Jade 的一种格式化后端。<span class="APPLICATION">JadeTeX</span> 可以生成 Postscript 或者 PDF 文件(后者带书签)。</p>
<p>不过，<span class="APPLICATION">JadeTeX</span> 的输出比 RTF 后端稍差一点的打印输出。主要是表的格式和各种竖直和水平的空白效果。而且，你还没有机会手工润色输出结果。不过，它运行得很好，尤其是那些不用表格的简单些的文档。</p></dd>
</dl>
</div>
<p>我们已经在文档中记录了几种安装处理此文档所需的各种工具的方法。它们在下面描述。也可能有其它包发布这些工具。请向 doc 邮件列表报告那些包的状态，就会在这里包括那些信息。</p>
<div class="SECT2"><h2 class="SECT2"><a name="AEN88102">G.2.1. Linux RPM 安装</a></h2>
<p>许多供应商在它们的版本里提供了一整套处理 DocBook 的 RPM 包，请检查一下"SGML"选项，或者下列包之一：<tt class="FILENAME">sgml-common</tt>, <tt class="FILENAME">docbook</tt>, <tt class="FILENAME">stylesheets</tt>, <tt class="FILENAME">openjade</tt>(或 <tt class="FILENAME">jade</tt>)。可能还需要 <tt class="FILENAME">sgml-tools</tt> 。如果你的版本没有提供这些东西，那么你应该可以使用来自一些其它合理兼容的发行商的包。</p>
</div>
<div class="SECT2"><h2 class="SECT2"><a name="AEN88114">G.2.2. FreeBSD 安装</a></h2>
<p>FreeBSD 文档计划本身就非常频繁地使用 DocBook ，所以在 FreeBSD 里有一整套可以用的文档工具的"ports"就一点也不奇怪了。要在 FreeBSD 里制作文档，你必须安装下面的 port ：</p>
<ul>
<li><p><tt class="FILENAME">textproc/sp</tt></p></li>
<li><p><tt class="FILENAME">textproc/openjade</tt></p></li>
<li><p><tt class="FILENAME">textproc/iso8879</tt></p></li>
<li><p><tt class="FILENAME">textproc/dsssl-docbook-modular</tt></p></li>
</ul>
<p>很明显，现在还没有 DocBook V4.2 SGML DTD 的 port 。你需要手工安装它。</p>
<p>很多东西来自 <tt class="FILENAME">/usr/ports/print</tt> (<tt class="FILENAME">tex</tt>, <tt class="FILENAME">jadetex</tt>) 你也可能会安装。</p>
<p>这些 port 很可能不会更新位于 <tt class="FILENAME">/usr/local/share/sgml/catalog</tt> 的主目录文件。确保你有下面这行：</p>
<pre class="PROGRAMLISTING">CATALOG "/usr/local/share/sgml/docbook/4.2/docbook.cat"</pre>
<p>如果你不想编辑文件，还可以把环境变量 <tt class="ENVAR">SGML_CATALOG_FILES</tt> 设置为一个冒号分隔的目录文件列表(比如上面那样的)。</p>
<p>你可以在 <a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/fdp-primer/tools.html" target="_top">FreeBSD Documentation Project's instructions</a> 里找到更多有关 FreeBSD 文档工具的信息。</p>
</div>
<div class="SECT2"><h2 class="SECT2"><a name="AEN88141">G.2.3. Debian 包</a></h2>
<p>Debian GNU/Linux 里面也有一整套可以用的文档工具的包。安装时，只需要用下面的命令：</p>
<pre class="PROGRAMLISTING">apt-get install jade
apt-get install docbook
apt-get install docbook-stylesheets</pre>
</div>
<div class="SECT2"><h2 class="SECT2"><a name="AEN88146">G.2.4. 从源程序手工安装</a></h2>
<p>DocBook 工具的手工安装过程有些复杂，因此如果你有预先制作好的包，最好还是用它们。在这里只描述一个标准的安装，而且安装到标准的路径里，并且没有"神奇"的特性。相关的更多的细节，你应该学习相关包的文档，并且阅读 SGML 介绍性材料。</p>
<div class="SECT3"><h3 class="SECT3"><a name="AEN88151">G.2.4.1. 安装 OpenJade</a></h3>
<div class="PROCEDURE">
<ol type="1">
<li class="STEP"><p>OpenJade 提供了一个 GNU 风格的 <tt class="LITERAL">./configure; make; make install</tt> 制作过程。你可以在 OpenJade 源程序包里找到详细内容。在 shell 里：</p>
<pre class="SYNOPSIS">./configure --enable-default-catalog=/usr/local/share/sgml/catalog
make
make install</pre>
<p>确保你记住了"default catalog"的位置，后面还会需要它。也可以不用注明这句话，但是稍后使用 <span class="APPLICATION">jade</span> 的时候，你就不得不把环境变量 <tt class="ENVAR">SGML_CATALOG_FILES</tt> 设置为指向该文件的位置。如果 OpenJade 已经安装，并且你想在本地安装其它工具的时候，这也是个可选的方法。</p></li>
<li class="STEP"><a name="DOC-OPENJADE-INSTALL"></a>
<p>另外，你应该从 <tt class="FILENAME">dsssl</tt> 目录里把 <tt class="FILENAME">dsssl.dtd</tt>, <tt class="FILENAME">fot.dtd</tt>, <tt class="FILENAME">style-sheet.dtd</tt>, <tt class="FILENAME">catalog</tt> 文件安装上，可能是安装到 <tt class="FILENAME">/usr/local/share/sgml/dsssl</tt> 吧。最简单的可能就是复制整个目录：</p>
<pre class="SYNOPSIS">cp -R dsssl /usr/local/share/sgml</pre></li>
<li class="STEP"><p>最后，创建文件 <tt class="FILENAME">/usr/local/share/sgml/catalog</tt> 并且把下面行加入其中：</p>
<pre class="PROGRAMLISTING">CATALOG "dsssl/catalog"</pre>
<p>这是一个相对路径，指向在 <a href="docguide-toolsets.html#DOC-OPENJADE-INSTALL">step 2</a> 里安装的文件。请根据你自己的安装布局进行调整。</p></li>
</ol>
</div>
</div>
<div class="SECT3"><h3 class="SECT3"><a name="AEN88175">G.2.4.2. 安装 DocBook DTD 工具箱</a></h3>
<div class="PROCEDURE">
<ol type="1">
<li class="STEP"><p>Obtain the <a href="http://www.docbook.org/sgml/4.2/docbook-4.2.zip" target="_top">DocBook V4.2 distribution</a></p></li>
<li class="STEP"><p>创建目录 <tt class="FILENAME">/usr/local/share/sgml/docbook-4.2</tt> 并且进入该目录。实际的位置并非关键，上面这个只是在这里的布局的比较合理的位置。</p>
<pre class="SCREEN"><samp class="PROMPT">$ </samp><kbd class="USERINPUT">mkdir /usr/local/share/sgml/docbook-4.2</kbd>
<samp class="PROMPT">$ </samp><kbd class="USERINPUT">cd /usr/local/share/sgml/docbook-4.2</kbd></pre></li>
<li class="STEP"><p>解包归档。</p>
<pre class="SCREEN"><samp class="PROMPT">$ </samp><kbd class="USERINPUT">unzip -a ...../docbook-4.2.zip</kbd></pre>
<p>这个归档将把它的文件解开到当前目录。</p></li>
<li class="STEP"><p>编辑 <tt class="FILENAME">/usr/local/share/sgml/catalog</tt> 文件(或者任何安装的时候你告诉 jade 的东西)并且把类似下面的行放到该文件里面：</p>
<pre class="PROGRAMLISTING">CATALOG "docbook-4.2/docbook.cat"</pre></li>
<li class="STEP"><p>下载 <a href="http://www.oasis-open.org/cover/ISOEnts.zip" target="_top">ISO 8879 字符记录归档</a>，解开它，然后把文件放到 DocBook 文件的同一个目录里。</p>
<pre class="SCREEN"><samp class="PROMPT">$ </samp><kbd class="USERINPUT">cd /usr/local/share/sgml/docbook-4.2</kbd>
<samp class="PROMPT">$ </samp><kbd class="USERINPUT">unzip ...../ISOEnts.zip</kbd></pre></li>
<li class="STEP"><p>在装有 DocBook 和 ISO 文件的目录里运行下面的命令：</p>
<pre class="PROGRAMLISTING">perl -pi -e 's/iso-(.*).gml/ISO\1/g' docbook.cat</pre>
<p>这个动作修补了一个小毛病，这个毛病把 DocBook 目录文件里使用的名字和 ISO 字符实体文件的名字混淆了。</p></li>
</ol>
</div>
</div>
<div class="SECT3"><h3 class="SECT3"><a name="AEN88211">G.2.4.3. 安装 DocBook 的 DSSSL 样式表</a></h3>
<p>要安装样式表，解开发布的工具包，然后把它挪到一个合适的地方(比如 <tt class="FILENAME">/usr/local/share/sgml</tt>)。归档会自动生成一个子目录。</p>
<pre class="SCREEN"><samp class="PROMPT">$</samp> <kbd class="USERINPUT">gunzip docbook-dsssl-1.<tt class="REPLACEABLE"><i>xx</i></tt>.tar.gz</kbd>
<samp class="PROMPT">$</samp> <kbd class="USERINPUT">tar -C /usr/local/share/sgml -xf docbook-dsssl-1.<tt class="REPLACEABLE"><i>xx</i></tt>.tar</kbd></pre>
<p>你也可以在 <tt class="FILENAME">/usr/local/share/sgml/catalog</tt> 里制作常用的目录条目：</p>
<pre class="PROGRAMLISTING">CATALOG "docbook-dsssl-1.<tt class="REPLACEABLE"><i>xx</i></tt>/catalog"</pre>
<p>因为样式表变化频繁，因此有时候多实验几个版本也挺好，PostgreSQL 并不使用这个表项。参阅<a href="docguide-toolsets.html#DOCGUIDE-TOOLSETS-CONFIGURE">章G.2.5</a>获取有关如何选择样式表的信息。</p>
</div>
<div class="SECT3"><h3 class="SECT3"><a name="AEN88229">G.2.4.4. 安装 JadeTeX</a></h3>
<p>要安装和使用 JadeTeX ，就需要一套能用的 TeX 和 LaTeX2e ，包括支持的工具和图形包。 Babel 、AMS 字体 、AMS-LaTeX 、PSNFSS 扩展、"the 35 fonts"工具箱、用于生成 PostScript 的 dvips 程序，宏包 fancyhdr, hyperref, minitoc, url, ot2enc ，所有这些你都可以在你最近的 <a href="http://www.ctan.org" target="_top">CTAN 镜像站点</a>找到。基本 <span class="APPLICATION">TeX</span> 系统的安装远远超出了这份介绍的范围。你应该可以在任何可以运行 <span class="APPLICATION">TeX</span> 的系统上找到二进制包。</p>
<p>在你开始使用 <span class="APPLICATION">JadeTeX</span> 处理 PostgreSQL 文档之前，你需要增大 <span class="APPLICATION">TeX</span> 的内部数据结构的尺寸。关于这些事情的细节可以在 <span class="APPLICATION">JadeTeX</span> 的安装指导里找到。</p>
<p>一旦完成了这些你就可以安装 <span class="APPLICATION">JadeTeX</span> 了：</p>
<pre class="SCREEN"><samp class="PROMPT">$</samp> <kbd class="USERINPUT">gunzip jadetex-<tt class="REPLACEABLE"><i>xxx</i></tt>.tar.gz</kbd>
<samp class="PROMPT">$</samp> <kbd class="USERINPUT">tar xf jadetex-<tt class="REPLACEABLE"><i>xxx</i></tt>.tar</kbd>
<samp class="PROMPT">$</samp> <kbd class="USERINPUT">cd jadetex</kbd>
<samp class="PROMPT">$</samp> <kbd class="USERINPUT">make install</kbd>
<samp class="PROMPT">$</samp> <kbd class="USERINPUT">mktexlsr</kbd></pre>
<p>最后两步需要以 <span class="SYSTEMITEM">root</span> 身份处理。</p>
</div>
</div>
<div class="SECT2"><h2 class="SECT2"><a name="DOCGUIDE-TOOLSETS-CONFIGURE">G.2.5. <tt class="COMMAND">configure</tt> 检测</a></h2>
<p>在你制作文档之前，你需要像制作程序本身那样运行 <tt class="FILENAME">configure</tt> 脚本。检查运行结尾处的输出，应该看起来像这样：</p>
<pre class="SCREEN"><samp class="COMPUTEROUTPUT">checking for onsgmls... onsgmls
checking for openjade... openjade
checking for DocBook V4.2... yes
checking for DocBook stylesheets... /usr/lib/sgml/stylesheets/nwalsh-modular
checking for sgmlspl... sgmlspl</samp></pre>
<p>如果 <tt class="FILENAME">onsgmls</tt> 和 <tt class="FILENAME">nsgmls</tt> 都没有找到，那么你就看不到最后四行。<tt class="FILENAME">nsgmls</tt> 是 Jade 包的一部分。可以通过传递环境变量 <tt class="ENVAR">JADE</tt> 和 <tt class="ENVAR">NSGMLS</tt> 给 configure 来指定这些程序的位置。如果没有找到"DocBook V4.2"，那么就是你没有把 DocBook DTD 工具箱装到 jade 可以找到的地方，或者你没有正确设置目录文件。参阅上面的安装提示。配置脚本会在一些比较标准的位置寻找 DocBook 样式表，但如果你把它们放在其它位置，那么就应该设置环境变量 <tt class="ENVAR">DOCBOOKSTYLE</tt> 为该位置并且重新运行 <tt class="FILENAME">configure</tt> 脚本。</p>
</div>
</div>
<div>
<hr align="LEFT" width="100%">
<table summary="Footer navigation table" width="100%" border="0" cellpadding="0" cellspacing="0">
<tr><td width="33%" align="left" valign="top"><a href="docguide-docbook.html" accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html" accesskey="H">首页</a></td><td width="33%" align="right" valign="top"><a href="docguide-build.html" accesskey="N">前进</a></td></tr>
<tr><td width="33%" align="left" valign="top">DocBook</td><td width="34%" align="center" valign="top"><a href="docguide.html" accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">制作文档</td></tr>
</table>
</div>
</body></html>